GIT (вынесено в отдельный репозиторий в рамках ) - https://git.gosuslugi.local/ervu/source/mz-mnsv-ervu-measures-temporary-confirm-fsb/-/tree/dev/
Описание
Сервис для работы с ВС "ЕРВУ_Подтверждение введения временной меры запрет на выезд из РФ для граждан в целях обеспечения воинского учета" для ФОИВ ФСБ (urn://rostelekom.ru/ERVU-MeasuresTemporaryConfirmFSB/1.0.1). Обрабатывает сообщения, поступающие от ФОИВ через СМЭВ по этому виду сведений.
Сервис вынесен в отдельный репозиторий с использованием библиотеки mzServiceCore
Назначение
Сервис реализует передачу данных о введении или отмене временной меры "Запрет на выезд из Российской Федерации". JSON передаётся из процессов, преобразуется в XML сообщение по формату ВС https://lkuv.gosuslugi.ru/paip-portal/#/inquiries/card/e475ed84-8781-4646-8a4f-0cfa965c12ef
На текущий момент работает с версией ВС 1.0.1
Схема взаимодействия ФОИВ ФСБ по части введения и отмены временных мер
Примеры запроса-ответа
Инициатором сеанса выступает система ЕРВУ, передавая сообщение о введении или отмене временной меры через вид сведений urn://rostelekom.ru/ERVU-AbroadForbiddenTemporary (текущая версия 1.0.5)
После получения сообщения от системы ЕРВУ, ФОИВ передаёт подтверждение через соответствующий ВС
Структура запроса (инициатор - ФОИВ)
| Поле в XML | Назначение поля | ФЛК | Кол-во вхождений | Комментарий |
|---|---|---|---|---|
| Поле в XML | Назначение поля | ФЛК | Кол-во вхождений | Комментарий |
| Начало блока common - общая информация о гражданине | ||||
| lastName | Передача фамилии гражданина | Кириллица, пробел, дефис. Максимум - 100 символов | 1..1 | |
| firstName | Передача имени гражданина | Кириллица, пробел, дефис. Максимум - 100 символов | 1..1 | |
| middleName | Передача отчества гражданина | Кириллица, пробел, дефис. Максимум - 100 символов | 0..1 | |
| Начало блока birthDate - сведения о дате рождения гражданина | ||||
| day | День рождения гражданина | Число от 01 до 31 | 1..1 | |
| month | Месяц рождения гражданина | Число от 01 до 12 | 1..1 | |
| year | Год рождения гражданина | Число от 1900 до 2099 | 1..1 | |
| Конец блока birthDate - сведения о дате рождения гражданина | ||||
| snils | Передача СНИЛС гражданина | 11 цифр | 0..1 | СНИЛС передаётся без пробелов/дефисов |
| idErn | Передача ИД ЕРН гражданина | 12 цифр | 0..1 | |
| Конец блока common - общая информация о гражданине | ||||
| Начало блока passport - сведения о ДУЛ гражданина | ||||
| series | Серия ДУЛ гражданина | 4 цифры | 1..1 | |
| number | Номер ДУЛ гражданина | 6 цифр | 1..1 | |
| issueDate | Дата выдачи ДУЛ гражданина | Дата в формате dd.mm.yyyy | 1..1 | |
| Конец блока passport - сведения о ДУЛ гражданина | ||||
| Начало блока measuresTemporary - сведения о временной мере | ||||
| measureId | Идентификатор временной меры | Латиница, цифры, дефис, пробел. Максимум - 85 символов | 1..1 | |
| number | Номер решения о введении меры | Цифры, дефис. Максимум 250 символов | 1..1 | |
| date | Дата решения о введении меры | Дата в формате dd.mm.yyyy | 1..1 | |
| militaryCommissariatName | Наименование организации, принявшей решение о введении меры | Кириллица, цифры, пробел, спецсимволы. Максимум - 512 символов | 0..1 | |
| measureCode | Код временной меры | Справочник (список значений правее) | 1..1 |
|
| measureName | Тип временной меры | Кириллица, пробел. Максимум - 100 символов | 1..1 | |
| statusCode | Код статуса меры | Справочник (список значений правее) | 1..1 |
|
| statusName | Наименование статуса меры | Справочник (список значений правее) | 1..1 |
|
Конец блока measuresTemporary - сведения о временной мере | ||||
Сообщение в формате XML
Атрибут routing
В XML передаётся атрибут routing, в котором от ФОИВ передаётся код маршрутизации (мнемоника) стенда, на который отправляется запрос. Значение для атрибута передаётся в теге sender в сообщении от ЕРВУ по виду сведений urn://rostelekom.ru/ERVU-AbroadForbiddenTemporary (текущая версия 1.0.5)
Структура ответа (ответчик - ЕРВУ)
Поле в XML | Назначение поля | ФЛК | Кол-во вхождений | Комментарий |
|---|---|---|---|---|
Поле в XML | Назначение поля | ФЛК | Кол-во вхождений | Комментарий |
| statusCode | Код статуса сообщения | Справочник (значения правее) | 1..1 |
|
| statusName | Наименование статуса сообщения | Максимально количество символов - 250 | 1..1 |
Сообщение в формате XML
Kafka
Consumer
- mz.petition.in.request
- ervu.subpoena.restriction.updated
Producer
- ervu.subpoena.restriction.update
- mz.petition.out.request
- mz.petition.in.response
- mz.scenario.info
- mz.impl.mock
- mz.impl.info
- pgs.proxy.endpoints.access.info
Проверка XML на валидность
В сервисе реализована проверка XML согласно XSD-схеме вида сведений. Флаг, отвечающий за функционал, лежит в конфиге сервиса по пути extra_options.validator.xml.enabled с значением true
В такой реализации некорректный JSON, поступающий из процессов и преобразованный в XML, проверяется внутри сервиса на валидность по схеме вида сведений. Схема расположена по пути /src/main/resources в папке с версией ВС
На текущий момент путь до XSD-схемы /src/main/resources/1_0_1/schema/schema.xsd
Если JSON некорректен, в логах сервиса будет ошибка
Пример ошибки из логов
В данном случае
Value 'Фамилия476592111354' - значение из процесса
pattern '[-А-Яа-яёЁ ]{1,100}' - паттерн RegExp, установленный для поля
type 'string-100' - тип данных для элемента, установленный в XSD схеме
Самая частая ошибка на тестовых стендах - в ФИО гражданина есть цифры (т.к. большинство записей заводится в таком формате: 'Фамилия476592111354 Имя476592111354 Отчество476592111354'), которые не предусмотрены в XSD
Добавить комментарий